Skip to content

Tuple transform refactoring#468

Merged
alex-kulakov merged 71 commits intomasterfrom
tuple-transform-refactoring
Apr 22, 2026
Merged

Tuple transform refactoring#468
alex-kulakov merged 71 commits intomasterfrom
tuple-transform-refactoring

Conversation

@alex-kulakov
Copy link
Copy Markdown
Contributor

Heavy refactoring of tuple transformation and Rse.Providers made by @AlexUstinov

  • Many types from Xtensive.Tuples.Transform namespace were removed, renamed or turned into internal, whole concept simplified and now contains only what's in use
  • Xtensive.Collections.FixedList3 is removed and Xtensive.Tuples.TupleExtensions's methods that used it also removed
  • Xtensive.Orm.Rse.Providers no longer rely on virtual method to build their headers but rather use static methods within type to do so, which reduces overhead significantly by just faster calls.
  • Removed some double-checks of incoming parameters or made them a bit faster by using dotnet validators instead of ours ArgumentValidator.
  • other slight improvements here and there

AlexUstinov and others added 28 commits January 27, 2022 00:16
# Conflicts:
#	Directory.Build.props
#	Extensions/Xtensive.Orm.Security/Cryptography/GenericHashingService.cs
#	Extensions/Xtensive.Orm.Security/Cryptography/MD5HashingService.cs
#	Extensions/Xtensive.Orm.Security/Cryptography/SHA1HashingService.cs
#	Extensions/Xtensive.Orm.Security/Cryptography/SHA256HashingService.cs
#	Extensions/Xtensive.Orm.Security/Cryptography/SHA384HashingService.cs
#	Extensions/Xtensive.Orm.Security/Cryptography/SHA512HashingService.cs
#	Orm/Xtensive.Orm.Sqlite/Sql.Drivers.Sqlite/ProviderInitializer.cs
#	Orm/Xtensive.Orm.Tests/Storage/Randomized/RandomizedTest.cs
#	Orm/Xtensive.Orm.Tests/Upgrade/ConflictsByTable/TestBase.cs
#	Orm/Xtensive.Orm/Core/Extensions/ArrayExtensions.cs
#	Orm/Xtensive.Orm/Orm/EntitySetBase.cs
#	Orm/Xtensive.Orm/Orm/Model/TypeInfo.cs
#	Orm/Xtensive.Orm/Orm/Providers/NameBuilder.cs
#	Orm/Xtensive.Orm/Orm/Providers/SqlCompiler.Include.cs
#	Orm/Xtensive.Orm/Orm/Providers/SqlProvider.cs
#	Orm/Xtensive.Orm/Orm/QueryableExtensions.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/AggregateProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/CalculateProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/ConcatProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/ContainsTableProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/FreeTextProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/IncludeProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/OrderProviderBase.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Executable/ExecutableRawProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/ExecutableProvider.cs
#	Orm/Xtensive.Orm/Tuples/Packed/PackedFieldAccessor.cs
#	Orm/Xtensive.Orm/Tuples/Packed/PackedFieldDescriptiorExtensions.cs
#	Orm/Xtensive.Orm/Tuples/Packed/PackedFieldDescriptor.cs
#	Orm/Xtensive.Orm/Tuples/Packed/PackedTuple.cs
#	Orm/Xtensive.Orm/Tuples/Transform/TupleTransformBase.cs
#	Orm/Xtensive.Orm/Tuples/Tuple.cs
#	Orm/Xtensive.Orm/Tuples/TupleExtensions.cs
# Conflicts:
#	Orm/Xtensive.Orm.Sqlite/Sql.Drivers.Sqlite/ProviderInitializer.cs
#	Orm/Xtensive.Orm/Orm/EntitySetBase.cs
#	Orm/Xtensive.Orm/Orm/Providers/SqlProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/AggregateProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/ApplyProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/BinaryProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/CalculateProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/ContainsTableProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/ExistenceProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/IncludeProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/LockProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/RawProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/SelectProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/StoreProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/TagProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/UnaryProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/VoidProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/ExecutableProvider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Providers/Provider.cs
#	Orm/Xtensive.Orm/Orm/Rse/Transformation/ColumnMappingInspector.cs
#	Orm/Xtensive.Orm/Tuples/Transform/CombineTransform.cs
#	Orm/Xtensive.Orm/Tuples/Transform/CutInTransform.cs
#	Orm/Xtensive.Orm/Tuples/Transform/CutOutTransform.cs
#	Orm/Xtensive.Orm/Tuples/Transform/Internals/MapTransformTuple.cs
#	Orm/Xtensive.Orm/Tuples/Transform/MapTransform.cs
#	Orm/Xtensive.Orm/Tuples/Transform/ReadOnlyTransform.cs
#	Orm/Xtensive.Orm/Tuples/Transform/TupleTransformBase.cs
#	Orm/Xtensive.Orm/Tuples/Transform/WrappingTransformTupleBase.cs
# Conflicts:
#	Orm/Xtensive.Orm.Tests.Core/Tuples/Transform/CutInTransformTest.cs
#	Orm/Xtensive.Orm.Tests.Core/Tuples/Transform/MapTransformTest.cs
#	Orm/Xtensive.Orm.Tests.Core/Tuples/Transform/MergeTransformTest.cs
#	Orm/Xtensive.Orm.Tests.Core/Tuples/Transform/ReadOnlyTransformTest.cs
#	Orm/Xtensive.Orm/Linq/ExpressionExtensions.cs
#	Orm/Xtensive.Orm/Orm/Linq/Translator.Expressions.cs
#	Version.props
- Performance tests of constructors
- ToString test for ConcatTransform
- everywhere inside the project transformations are perforemed on valid
  descriptors so we can skip checks of structs, transformations are public though
  so we have to keep validation in public ctor
# Conflicts:
#	ChangeLog/7.2.2-dev.txt
@alex-kulakov alex-kulakov merged commit a6ab74a into master Apr 22, 2026
20 of 36 checks passed
@AlexUstinov
Copy link
Copy Markdown
Contributor

😲

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants